{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "80618c63-32db-442d-99d5-dc1c993eb8e4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[34. 78.  0.]\n",
      " [55. 86.  0.]\n",
      " [58. 67.  0.]\n",
      " [34. 65.  0.]\n",
      " [67. 50.  0.]\n",
      " [89. 44.  0.]\n",
      " [65. 33.  0.]\n",
      " [56. 45.  0.]\n",
      " [78. 55.  0.]\n",
      " [76. 56.  0.]\n",
      " [58. 64.  0.]\n",
      " [33. 66.  0.]\n",
      " [45. 55.  0.]\n",
      " [78. 45.  0.]\n",
      " [58. 62.  0.]\n",
      " [56. 90.  0.]\n",
      " [56. 78.  0.]\n",
      " [58. 57.  0.]\n",
      " [67. 33.  0.]\n",
      " [56. 56.  0.]\n",
      " [58. 89.  0.]\n",
      " [45. 55.  0.]\n",
      " [67. 22.  0.]\n",
      " [44. 55.  0.]\n",
      " [67. 33.  0.]\n",
      " [66. 45.  0.]\n",
      " [33. 56.  0.]\n",
      " [55. 67.  0.]\n",
      " [38. 78.  0.]\n",
      " [56. 67.  0.]\n",
      " [46. 47.  0.]\n",
      " [67. 46.  0.]\n",
      " [89. 30.  0.]\n",
      " [67. 55.  0.]\n",
      " [67. 48.  0.]\n",
      " [35. 80.  0.]\n",
      " [61. 59.  0.]\n",
      " [57. 46.  0.]\n",
      " [67. 46.  0.]\n",
      " [39. 46.  0.]\n",
      " [67. 44.  0.]\n",
      " [57. 49.  0.]\n",
      " [78. 56.  0.]\n",
      " [48. 55.  0.]\n",
      " [56. 89.  0.]\n",
      " [78. 54.  0.]\n",
      " [67. 56.  0.]\n",
      " [58. 59.  0.]\n",
      " [56. 60.  0.]\n",
      " [58. 65.  0.]\n",
      " [90. 78.  1.]\n",
      " [67. 73.  1.]\n",
      " [80. 69.  1.]\n",
      " [78. 73.  1.]\n",
      " [89. 60.  1.]\n",
      " [76. 61.  1.]\n",
      " [64. 67.  1.]\n",
      " [63. 73.  1.]\n",
      " [82. 63.  1.]\n",
      " [93. 74.  1.]\n",
      " [76. 78.  1.]\n",
      " [64. 83.  1.]\n",
      " [68. 75.  1.]\n",
      " [89. 76.  1.]\n",
      " [96. 90.  1.]\n",
      " [97. 94.  1.]\n",
      " [90. 88.  1.]\n",
      " [66. 74.  1.]\n",
      " [77. 80.  1.]\n",
      " [83. 85.  1.]\n",
      " [85. 81.  1.]\n",
      " [87. 80.  1.]\n",
      " [88. 90.  1.]\n",
      " [66. 64.  1.]\n",
      " [67. 78.  1.]\n",
      " [88. 94.  1.]\n",
      " [77. 73.  1.]\n",
      " [65. 66.  1.]\n",
      " [90. 98.  1.]\n",
      " [96. 83.  1.]\n",
      " [97. 84.  1.]\n",
      " [98. 73.  1.]\n",
      " [99. 66.  1.]\n",
      " [99. 98.  1.]\n",
      " [88. 76.  1.]\n",
      " [67. 84.  1.]\n",
      " [88. 93.  1.]\n",
      " [76. 62.  1.]\n",
      " [88. 60.  1.]\n",
      " [89. 71.  1.]\n",
      " [73. 72.  1.]\n",
      " [63. 75.  1.]\n",
      " [79. 85.  1.]\n",
      " [68. 75.  1.]\n",
      " [66. 90.  1.]\n",
      " [78. 94.  1.]\n",
      " [70. 66.  1.]\n",
      " [65. 65.  1.]\n",
      " [73. 98.  1.]\n",
      " [93. 60.  1.]]\n",
      "提取的特征变量（第0列和第1列）：\n",
      "[[34. 78.]\n",
      " [55. 86.]\n",
      " [58. 67.]\n",
      " [34. 65.]\n",
      " [67. 50.]\n",
      " [89. 44.]\n",
      " [65. 33.]\n",
      " [56. 45.]\n",
      " [78. 55.]\n",
      " [76. 56.]\n",
      " [58. 64.]\n",
      " [33. 66.]\n",
      " [45. 55.]\n",
      " [78. 45.]\n",
      " [58. 62.]\n",
      " [56. 90.]\n",
      " [56. 78.]\n",
      " [58. 57.]\n",
      " [67. 33.]\n",
      " [56. 56.]\n",
      " [58. 89.]\n",
      " [45. 55.]\n",
      " [67. 22.]\n",
      " [44. 55.]\n",
      " [67. 33.]\n",
      " [66. 45.]\n",
      " [33. 56.]\n",
      " [55. 67.]\n",
      " [38. 78.]\n",
      " [56. 67.]\n",
      " [46. 47.]\n",
      " [67. 46.]\n",
      " [89. 30.]\n",
      " [67. 55.]\n",
      " [67. 48.]\n",
      " [35. 80.]\n",
      " [61. 59.]\n",
      " [57. 46.]\n",
      " [67. 46.]\n",
      " [39. 46.]\n",
      " [67. 44.]\n",
      " [57. 49.]\n",
      " [78. 56.]\n",
      " [48. 55.]\n",
      " [56. 89.]\n",
      " [78. 54.]\n",
      " [67. 56.]\n",
      " [58. 59.]\n",
      " [56. 60.]\n",
      " [58. 65.]\n",
      " [90. 78.]\n",
      " [67. 73.]\n",
      " [80. 69.]\n",
      " [78. 73.]\n",
      " [89. 60.]\n",
      " [76. 61.]\n",
      " [64. 67.]\n",
      " [63. 73.]\n",
      " [82. 63.]\n",
      " [93. 74.]\n",
      " [76. 78.]\n",
      " [64. 83.]\n",
      " [68. 75.]\n",
      " [89. 76.]\n",
      " [96. 90.]\n",
      " [97. 94.]\n",
      " [90. 88.]\n",
      " [66. 74.]\n",
      " [77. 80.]\n",
      " [83. 85.]\n",
      " [85. 81.]\n",
      " [87. 80.]\n",
      " [88. 90.]\n",
      " [66. 64.]\n",
      " [67. 78.]\n",
      " [88. 94.]\n",
      " [77. 73.]\n",
      " [65. 66.]\n",
      " [90. 98.]\n",
      " [96. 83.]\n",
      " [97. 84.]\n",
      " [98. 73.]\n",
      " [99. 66.]\n",
      " [99. 98.]\n",
      " [88. 76.]\n",
      " [67. 84.]\n",
      " [88. 93.]\n",
      " [76. 62.]\n",
      " [88. 60.]\n",
      " [89. 71.]\n",
      " [73. 72.]\n",
      " [63. 75.]\n",
      " [79. 85.]\n",
      " [68. 75.]\n",
      " [66. 90.]\n",
      " [78. 94.]\n",
      " [70. 66.]\n",
      " [65. 65.]\n",
      " [73. 98.]\n",
      " [93. 60.]]\n",
      "提取的标签（第2列）：\n",
      "[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n",
      " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n",
      " 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.\n",
      " 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.\n",
      " 1. 1. 1. 1.]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.datasets import load_iris\n",
    "raw_df=np.loadtxt('logi-y.txt',delimiter=',',encoding='utf-8')\n",
    "data=raw_df[:,[0,1]]\n",
    "print(raw_df)\n",
    "print(\"提取的特征变量（第0列和第1列）：\")\n",
    "print(data)\n",
    "target=raw_df[:,2]\n",
    "print(\"提取的标签（第2列）：\")\n",
    "print(target)"
   ]
  },
  {
   "cell_type": "raw",
   "id": "c66c1a01-6f37-49ce-a34e-dd07461f3e94",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9cb39f25-3ab9-4593-97e6-eb4b88384145",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "e0c2ec16-914d-4de6-b08f-f2f5474ca5e1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "模型准确率: 0.8333\n"
     ]
    },
    {
     "data": {
      "image/png": "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WXl5eZKktLQ09e/fX1988QV9aFF//etftXz5ckk8U63oiSee0Msvv6zt27frtttu05gxY+hHi+nbt6+eeuopd+GICy+8UL1795Yk+tGCjnT/+ePeJIGC1/Lz8xUTE6Nly5ZJkmpra7Vs2TIdOHBAFRUVHm3379+vjIwMM8KEF8rKypSWluY+Tk5OVlxcHP1oEb1795bdbvc4l5qaqtjYWPrQgsrLy7Vnzx4lJCRIav5Djn60ji1btujAgQMaPny4hg8frhNOOEETJ07U4sWL6UeLOfvss3X22We7j8vKynTaaacpPz/fox39GPqO9BytrKzs9r3JFD547dxzz9WVV16pyZMna/LkyUpISNDkyZN1ySWXaOvWre5svra2Vk6nU5mZmSZHjPZUV1erf//+cjgc7nMHDhzQOeecQz9axJAhQ/TVV195nKuqqtLll19OH1pQQUGB0tPT3cc/+tGP6EcL+fLLL5Wbm+s+PvXUU5WZmamTTz6ZfrSYffv2uf9/586dOuOMM5SXl0c/WtCRnqP+eMaSQKHLjOYqjkpOTta4ceO0du1aSdKqVas0ZcoU2Ww2kyNEexISEpSXl+cewdi+fbuGDBmi1NRU+tEiBg4cqNTUVH300UeSpKamJsXFxSk7O5s+tKCvv/7aY/E6z1RrGTFihDZt2uQ+rq+vV8+ePZWenk4/WsyoUaO0YcMGSdKiRYt02223cT9aSGNjozspOlK/+aNPbUbrSYBAJ/bs2aPly5frjjvu0G9+8xvdeOONSkhI0IwZM3T00UertLRU8+fPV2xsrNmhogMbNmzQ+vXrFR0dre3bt+uee+5Renq69u/fTz9axK5duzR79myNHDlS1dXVuuyyy5STk0MfWtBzzz2nt99+2z09WhL9aDGrV6/WZ599pqSkJBUXF2vy5Mk66aST6EeLmT9/vnbs2KEBAwYoOTlZ11xzjSTux1C3fft2vfLKK5o1a5amT5+uyy67TKeddtoR+627fUoCBQAAAABeYgofAAAAAHiJBAoAAAAAvEQCBQAAAABeIoECAAAAAC+RQAEAAACAl0igAAAAAMBLJFAAgKBrbweNb7/91oRImve2e+qpp3To0CG9//77HbZ7+eWX9corr7Q5/8ADD+jrr78OZIgAgBBCAgUACJri4mI99thjOv744/XNN994fOzBBx/UypUr27zmnXfeafdaVVVVWrNmTbdjiomJ0e9+9zvFxsZqy5Ytuvnmm9tt9+KLL2rgwIGSpE2bNmnNmjVas2aN8vPztWXLFq1Zs0ZTp05VSUlJt2MCAISuaLMDAACEv48++ki7d+/W+++/r8zMTG3dulWxsbH69NNPdcoppyg6OlrR0dHKzc1t89pf//rXysrKanO+pqZGZWVl+uqrrzx2kP/oo4+0atUqbdq0SStWrPB4jcPhUH19vXr27Ok+l5qaKpvNJpvNphtuuEF33nmnPv74Y40cOdLdZseOHerfv79OPfVUVVdXKyMjQ8nJyUpKSlJaWpqGDRumXr16KScnR8nJyf74lgEAQhQJFAAg4M444wz3/9fU1LgTntjYWI0ZM0bvv/++7HZ7u6+12+1at25dm/ObNm3SggULPJIn1+c66qij9N5777V5TUNDg4499liddNJJHuf37dunMWPGuI+ffPJJLViwQNOmTZMkPffcc7r//vtVXl6u0aNHa+XKlbrhhhvkcDj05Zdf6oorrlB5ebmOPfZYrVq1yqvvCQDAmkigAABBt2HDBiUnJ2vIkCG6/fbbFRUVJZvN1m7b6Gjff1VFRbU/Qz06OlopKSltErLTTz9da9asUXR0tJxOp8fr33jjDfXv318HDhzQwoULddddd2ngwIFaunSpUlJSdN1112n+/PlKS0vTgQMH9NVXX2nQoEE+xwwAsAYSKABAQO3du1djx45VamqqSkpKZLfblZGRobPPPltz587VRRddJEkdJlBRUVEeo0MuNTU1GjJkiE+xGIbhMWJVW1urhIQEZWdna/fu3crJydELL7yg//73v5o/f74kKSkpSV9++aU+++wzFRcX695779Uzzzyjvn37Kjo6WuPHj9f69etls9lUUVGhXr16kUABQBgjgQIABFTfvn1VWFgoSZo8ebJ+9rOf6eqrr5YkvfLKKxo7dqzS0tI6TKAkHXEKny8cDoe2b9/uTsi++eYbLViwQLm5uSosLFROTo6WLl2q3/72t+7XjB49WqNHj9bdd9+txx57TPHx8TrllFN0/fXXKyUlxd3O6XSqsrJSmzZt8ikmAIC1kEABAILiu+++0zvvvCPDMLR9+3bdf//9Ov3003X55ZfrzTffdLczDMMjmTpSYuWr+vp6DR8+XGvXrpUkXXjhhTr99NNlt9v10UcfafDgwSorK9OoUaM8Xve3v/1NV1xxhfr06aOGhgbFxMRo3LhxWrBggTZs2KDhw4ervLxct912W4druQAA4YEECgAQFL///e81a9YspaSkaNOmTdq4caNGjBihhx56yN1m3bp1uuGGG7Rs2TKlp6dLak6o/DWF79ChQ8rMzHQf19bWqm/fvho3bpwefPBB7d+/X3fffbfHaz788EPNnj1bl156qf7zn/8oJydHvXv3dn/8uuuu0xtvvKH4+PgurdcCAFgLT3oAQMC9++67ysvLU3R0tGpra/W///u/2rp1q15++WXZbDbt2LFD33zzjS699FJdd911bV7vryl8JSUlHqXSHQ6H4uLiFBcXpxNOOEEfffSRHnvsMUnS9u3bNWDAAJ155pl66623dMIJJ0iSKioq9NVXX0lqnrYXGxur/v37q6ysTI2NjT7FAwCwHhIoAEBAFRcXa//+/frVr36ll19+WU6nU3FxcUpLS/MYWcrPz1dqamqb1zudTp8/Z2NjowzDaHN+48aNGjdunN566y0VFxeroaFBkrR//37t379f+/btU35+vs466yy9++67GjBggBwOh8rKyrR8+XL16tVLo0ePVlpami644AL961//0rnnnquPP/5Y6enpuuaaa3yOFQBgLSRQAICASklJ0YUXXiipecTH6XSqd+/ebabfGYbRbtLjcDg6nMI3ePDgNuc//PBDLVy4UP/5z3/0xz/+UZdccon69esnSfryyy917bXXSpLuuece3XPPPSotLdXcuXP1/PPPa9euXZo4caJuuOEGlZeXS5I++eQTPffcc5o7d677OpL07bff6u9//7ueeeYZRUVF6dFHH9W2bds0YsQIJSYmdu2bBQAIeTajvd9WAAAEwJIlS1RbW6sbb7yxzcduvPFGTZ8+vU0J8EGDBrmnzLW0adMmPfzww1q2bJlXn/uzzz5TTU2NRo8e7XGN//73v7r44ovd5c2//vpr3XvvvaqoqNBbb73lcY29e/fq888/V0lJifr166exY8d6fPyxxx6TzWbTrbfe6lVMAADrIYECAATNqlWrlJCQoLPOOqvNx+6//35de+21ys7O9jj/9ddf6/jjj2/TvqqqSg6Hw6OU+JFUVVUpKSnJ45yroh4AAN4igQIAAAAAL0WZHQAAAAAAWAUJFAAAAAB4iQQKAAAAALxEAgUAAAAAXiKBAgAAAAAvkUABAAAAgJdIoAAAAADASyRQAAAAAOAlEigAAAAA8NL/B0UPUqUeVOmiAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.metrics import accuracy_score\n",
    "raw_df = np.loadtxt('logi-y.txt', delimiter=',', encoding='utf-8')\n",
    "data = raw_df[:, [0, 1]]\n",
    "target = raw_df[:, 2]\n",
    "x = np.array(data)\n",
    "y = np.array(target)\n",
    "x_train, x_test, y_train, y_test = train_test_split(\n",
    "    x, y, \n",
    "    test_size=0.3, \n",
    "    random_state=42\n",
    ")\n",
    "model = LogisticRegression()\n",
    "model.fit(x_train, y_train)\n",
    "y_pred = model.predict(x_test)\n",
    "accuracy = accuracy_score(y_test, y_pred)\n",
    "print(f\"模型准确率: {accuracy:.4f}\")\n",
    "plt.rcParams[\"font.family\"] = [\"SimSun\"]\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "x_range = x[:, 0].max() - x[:, 0].min()\n",
    "y_range = x[:, 1].max() - x[:, 1].min()\n",
    "h = max(x_range, y_range) / 500\n",
    "x_min, x_max = x[:, 0].min() - 1, x[:, 0].max() + 1\n",
    "y_min, y_max = x[:, 1].min() - 1, x[:, 1].max() + 1\n",
    "xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n",
    "                     np.arange(y_min, y_max, h))\n",
    "Z = model.predict(np.c_[xx.ravel(), yy.ravel()])\n",
    "Z = Z.reshape(xx.shape)\n",
    "\n",
    "plt.figure(figsize=(10, 6))\n",
    "plt.pcolormesh(xx, yy, Z, \n",
    "               cmap=plt.cm.colors.ListedColormap([\"#ACF080\", \"#A0A0FF\"]), \n",
    "               alpha=0.8)\n",
    "plt.scatter(x[y == 0, 0], x[y == 0, 1], c='blue', marker='o', label='未被录取')\n",
    "plt.scatter(x[y == 1, 0], x[y == 1, 1], c='red', marker='^', label='已被录取')\n",
    "plt.xlabel('科目1成绩')\n",
    "plt.ylabel('科目2成绩')\n",
    "plt.legend(loc='upper right') \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6ef5cc86-f524-4884-afaa-744964e773fd",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
